.Net6中使用EF DbFirst和CodeFirst(SqlServer、WebAPI) | 您所在的位置:网站首页 › ef core 增删改查 › .Net6中使用EF DbFirst和CodeFirst(SqlServer、WebAPI) |
Entity Framework(EF):微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上。EF提供变更跟踪、唯一性约束、惰性加载、查询事物等。开发人员使用Linq语言,对数据库操作如同操作Object对象一样省事。 EF有三种使用场景,1. 从数据库生成Class,2.由实体类生成数据库表结构,3. 通过数据库可视化设计器设计数据库,同时生成实体类。对应三种编程方式: 1.DataBase First:在设计器中逆向生成Model,并有Model自动生成所有的类。 2.Model First:在设计器中创建Model,并用Model生成数据库。所有的类由Model自动生成。 3.Code First:代码优先。 1.DbFirst介绍1.Nuget包 Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.SqlServer.DesignMicrosoft.EntityFrameworkCore.Tools2.打开程序管理器控制台->默认项目(选择解决方案) Scaffold-DbContext "Data Source =[数据库地址,本机用.];Initial Catalog =[数据库名称];Persist Security Info=True;User ID=[数据库用户名];Password=[数据库密码];Encrypt=False;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -ContextDir Models -Context CustomerDbContext -Force3.配置数据库链接字符串 生成CustomerDbContext.cs修改 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); }配置文件appsettings.json "ConnectionStrings": { "DefaultConnection": "Data Source =[数据库地址,本机用.];Initial Catalog =[数据库名称];Persist Security Info=True;User ID=[数据库用户名];Password=[数据库密码];Encrypt=False;"把CustomerDbContext对象注入IOC容器进行管理Program.cs builder.Services.AddDbContext(option => { option.UseSqlServer("name=ConnectionStrings:DefaultConnection"); }); 2.Code Frist介绍1.Nuget包 Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.Tools2.添加数据库表类文件和操作文件 public class User { public int ID { get; set; } public string Account { get; set; } public string Password { get; set; } } public class CustomerDbContext:DbContext { public virtual DbSet Users { get; set; } public virtual DbSet Productions { get; set; } public CustomerDbContext(DbContextOptions options):base(options) { } }3.配置数据库连连接字符串 配置文件appsettings.json "ConnectionStrings": { "DefaultConnection": "Data Source =[数据库地址,本机用.];Initial Catalog =[数据库名称];Persist Security Info=True;User ID=[数据库用户名];Password=[数据库密码];Encrypt=False;"把DbContext对象放到IOC容器进行管理Program.cs builder.Services.AddDbContext(option => { option.UseSqlServer("name=ConnectionStrings:DefaultConnection"); });4.打开程序管理器控制台->默认项目(选择解决方案) 初始化:add-migration init 更新:update-database 注:修改表也是当前命令 |
CopyRight 2018-2019 实验室设备网 版权所有 |